package com.denlaku.longan.service;

import com.denlaku.longan.qo.Query;
import com.denlaku.longan.vo.ObjectTagRel;
import com.denlaku.longan.vo.TenantMemObjPerm;

import java.util.List;

/**
 * @author tianx
 */
public interface TenantMemObjPermService {
    /**
     * 批量保存用户对象权限
     *
     * @param list 用户对象权限
     */
    void batchAdd(List<TenantMemObjPerm> list);

    /**
     * 查询用户对象权限
     *
     * @param tenantId 租户ID
     * @param userId 用户ID
     * @return 用户对象权限
     */
    List<TenantMemObjPerm> list(Long tenantId, Long userId);

    /**
     * 查询用户对象权限
     *
     * @param tenantId 租户ID
     * @param userId 用户ID
     * @return 用户对象权限
     */
    List<ObjectTagRel> listPermTagRelList(Long tenantId, Long userId);

    /**
     * 设置有权限的标签ID
     *
     * @param query 查询参数
     */
    void setPermTagIds(Query query);

    /**
     * 批量删除用户对象权限
     *
     * @param tenantId 租户ID
     * @param userId 用户ID
     */
    void batchDelete(Long tenantId, Long userId);

    /**
     * 批量删除用户对象权限
     *
     * @param tenantId 租户ID
     * @param id 主键ID
     */
    void delete(Long tenantId, Long id);
}
